﻿using Model.BusinessModel.MatchFormula;
using Model.BusinessModel.OutPut;
using Model.BusinessModel.OutPut.sys;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Utility;
using Utility.Enum;

namespace DomainService.IService.MatchFormula
{
    /// <summary>
    /// 匹配公式接口服务
    /// </summary>
    public interface IMatchFormulaService
    {
        /// <summary>
        /// 解析匹配公式
        /// </summary>
        /// <param name="matchFormula">匹配公式字符串</param>
        /// <param name="menuId">菜单id</param>
        /// <param name="ruleType">规则类型</param>
        /// <returns>返回解析字符串</returns>
        ReceiveStatus<AnalysisRuleDataOutPut> AnalysisMatchFormula(string matchFormula, string menuId, int ruleType);

        /// <summary>
        /// 获取菜单数据按钮权限
        /// </summary>
        /// <param name="input">匹配数据按钮权限模型</param>
        /// <returns></returns>
        ReceiveStatus<SysButtonDataOutPut> GetMenuDataButtonAuth(MatchingDataButtonAuthInput input);

        /// <summary>
        /// 获取下拉框数据源
        /// </summary>
        /// <param name="showControlDataSourceEnum">数据源类型</param>
        /// <returns></returns>
        ReceiveStatus<SelectOutPut> GetSelectData(ShowControlDataSourceEnum showControlDataSourceEnum);
    }
}
